﻿using System;
using UI;
using UnityEngine;

public enum ECheckItemType { 拥有道具, 已使用道具, 有过道具, 读过剧本, 选中道具 }

[Serializable]
public class NeedItemInfo
{
    public ECheckItemType checkType;
    [Header("所需前置道具")]
    public EItemType needItemType;
    public string needScenario;
    [Header("缺少时的提示/触发的对话")]
    public string loseItemTip;
    public string loseItemScenario;

    /// <summary>
    /// 判断是否拥有
    /// </summary>
    public bool Check(bool interact)
    {
        if ((checkType == ECheckItemType.拥有道具 && !InventoryManager.HasItem(needItemType)) ||
            (checkType == ECheckItemType.已使用道具 && !InventoryManager.CheckItemUsed(needItemType)) ||
            (checkType == ECheckItemType.有过道具 && !InventoryManager.CheckItemGot(needItemType)) ||
            (checkType == ECheckItemType.读过剧本 && !UI_ScenarioPanel.CheckStarted(needScenario)) ||
            (checkType == ECheckItemType.选中道具 && (SlotUI.Instance.currentItem == null || SlotUI.Instance.currentItem.itemName != needItemType)))
        {
            if (interact)
            {
                if (!string.IsNullOrEmpty(loseItemScenario))
                {
                    UI_ScenarioPanel.StartScenario(loseItemScenario);
                }
                else if (!string.IsNullOrEmpty(loseItemTip))
                {
                    UI_TipPanel.ShowTip(loseItemTip);
                }
            }
            return false;
        }
        return true;
    }
}